/**
*┌──────────────────────────────────────────────────────────────┐
*│　描    述：Orders                                                    
*│　作    者：NetCoreCMS                                              
*│　版    本：1.0   模板代码自动生成                                              
*│　创建时间：2019-12-25 10:52:46                           
*└──────────────────────────────────────────────────────────────┘
*┌──────────────────────────────────────────────────────────────┐
*│　命名空间： NetCoreCMS.IServices                                   
*│　接口名称： IOrdersRepository                                      
*└──────────────────────────────────────────────────────────────┘
*/
using System;
using System.Collections.Generic;
using System.Text;

namespace NetCoreCMS.IServices
{
    public interface IOrdersService
    {
        bool Exists(string order_no);
        Models.Orders GetModel(string order_no);
        Models.Orders GetModel(int id);
        bool Update(Models.Orders model);
        bool Delete(int id);
        /// <summary>
        /// 使用where子句执行查询，并将结果映射到具有Paging的强类型List
        /// </summary>
        /// <param name="pageNumber">页码</param>
        /// <param name="rowsPerPage">每页显示数据</param>
        /// <param name="conditions">查询条件</param>
        /// <param name="orderby">排序</param>
        /// <param name="parameters">参数</param>
        /// <returns></returns>
        List<Models.Orders> GetList(int pageNumber, int rowsPerPage, string conditions, string orderby, object parameters = null);
        int RecordCount(string conditions, object parameters = null);
        bool Exists(int id);
        int Add(Models.Orders model);
        /// <summary>
        /// 修改一列数据
        /// </summary>
        bool UpdateField(int id, string strValue);
        /// <summary>
        /// 修改一列数据
        /// </summary>
        bool UpdateField(string order_no, string strValue);
        /// <summary>
        /// 返回订单商品列表
        /// </summary>
        /// <param name="order_id">订单</param>
        /// <returns>List</returns>
        List<Models.Article> get_order_goods_list(int order_id);

        /// <summary>
        /// 返回订单状态
        /// </summary>
        /// <param name="_id">订单ID</param>
        /// <returns>String</returns>
        string get_order_status(int _id);

        /// <summary>
        /// 返回订单是否需要在线支付
        /// </summary>
        /// <param name="order_id">订单ID</param>
        /// <returns>bool</returns>
        bool get_order_payment_status(int order_id);       

        /// <summary>
        /// 返回税金费用金额
        /// </summary>
        /// <param name="total_amount">总金额</param>
        /// <returns>decimal</returns>
        decimal get_order_taxamount(decimal total_amount, Models.Orderconfig model);        
    }
}